package com.yunxin.core.application.service;

import com.yunxin.core.application.dto.channel.ChannelPageInfoDTO;
import com.yunxin.core.application.dto.channel.ChannelPopupDTO;
import com.yunxin.core.application.dto.channel.ChannelPromotionCustomInfoDTO;
import com.yunxin.core.application.dto.channel.ChannelPromotionInfoDTO;

import java.util.List;
import java.util.Set;

/**
 * @author zero°
 * @since 2023-06-12
 */
public interface ChannelQueryGatewayService {

    /**
     * 根据渠道推广code查询渠道页面信息
     * @param channelPromotionCode channelPromotionCode
     * @return ChannelPromotionInfoDTO
     */
    ChannelPageInfoDTO getChannelPageInfoByPromotionCode(String channelPromotionCode);

    /**
     * 根据渠道推广code查询渠道信息
     * @param channelPromotionCode channelPromotionCode
     * @return ChannelPromotionInfoDTO
     */
    ChannelPromotionInfoDTO getChannelPromotionInfoByPromotionCode(String channelPromotionCode);

    /**
     * 根据渠道推广code查询渠道信息
     * @param channelPromotionCode channelPromotionCode
     * @return ChannelPromotionCustomInfoDTO
     */
    ChannelPromotionCustomInfoDTO getChannelPromotionCustomInfoByPromotionCode(String channelPromotionCode);

    /**
     * 根据渠道推广code查询渠道弹窗信息
     * @param channelPromotionCode channelPromotionCode
     * @param userCode userCode
     * @return ChannelPopupDTO
     */
    ChannelPopupDTO getChannelPopupInfoByPromotionCode(String channelPromotionCode, String userCode, List<Long> uvProductIds);
}
